// 工厂方法, 用于创建 一个 store module
import moduleCreator from '../moduleCreator'

// import api from '@/api'

// moduleName 指向了
const modelName = 'sale.order.template'

const fields = {
  name: null,
  sale_order_template_line_ids: {
    product_id: null,
    price_unit: null
  }
}

const config = {
  model: modelName,
  fieldsForSearch: fields,
  fieldsForBrowse: fields
}

const state = {
  //
  options: []
}
const mutations = {
  SET_Options: (state, payload) => {
    state.options = payload
  }
}
const actions = {
  async search_option({ commit, state, dispatch }, payload) {
    const res = await dispatch('_search', {
      ...payload
    })

    const ops = res.map(item => {
      const sotl = item.sale_order_template_line_ids__objects[0]

      return {
        id: item.id,
        value: item.id,
        text: sotl.price_unit.toString()
      }
    })

    // state.dataList

    commit('SET_Options', ops)
    return new Promise(resolve => {
      resolve(ops)
    })
  }
}

export default moduleCreator(config, {
  state,
  mutations,
  actions
})

// // 这是最简单的写法
// export default moduleCreator(modelName)

// 如果有扩展, 则按照下面的写法
// const state = {
//   //
// }
// const mutations = {
//   //
// }
// const actions = {
//   //
// }

// export default moduleCreator(modelName, {
//   namespaced: true,
//   state,
//   mutations,
//   actions
// })

// 如果 不继承, 用下面的写法
// const state = {
//   //
// }
// const mutations = {
//   //
// }
// const actions = {
//   //
// }

// export default {
//   namespaced: true,
//   state,
//   mutations,
//   actions
// }
